package main

import (
	"fmt"
	"log"
	"net"
)

func main() {
	fmt.Println("udp server start")
	//1 创建一个UDP的socket
	listen, err := net.ListenUDP("udp", &net.UDPAddr{
		IP:   net.IPv4(0, 0, 0, 0),
		Port: 8889,
	})
	if err != nil {
		log.Fatal(err)
		return
	}
	// 2 关闭socket
	defer listen.Close()

	for {
		//3 接收客户端的数据
		var data [1024]byte
		n, addr, err := listen.ReadFromUDP(data[:])
		if err != nil {
			log.Fatal(err)
			return
		}
		log.Printf("接收到客户端%s的数据：%s", addr.String(), string(data[:n]))

		//4 发送数据给客户端
		_, err = listen.WriteToUDP(data[:n], addr)
		if err != nil {
			log.Fatal(err)
			continue
		}
	}
}
